package com.shujia.wyh.day18;

/*
        枚举：现实生活中有很多事物都是有限个的，比如一年只有四个季节，对应到java类中，一个季节类只能创建出4个对象，不能再多
        像这样描述一个只有有限个对象，我们把这个类定义为枚举类。

        在JDK1.5之前呢，我们使用自定义枚举类
        在JDK1.5之后，java提供了enum关键字来定义枚举类
 */
public class EnumDemo1 {
    public static void main(String[] args) {
        //获取春天并使用
        Season spring = Season.SPRING;
        System.out.println(spring.getSEASON_NAME() + "---" + spring.getSEASON_DESC());
    }
}

class Season {
    //2、创建枚举类的属性（成员变量）,外界不能去修改也不能进行直接获取
    private final String SEASON_NAME;
    private final String SEASON_DESC;


    //1、必须将构造方法私有化，这样做的目的是为了保证类的对象是有限个的
    private Season(String SEASON_NAME, String SEASON_DESC) {
        this.SEASON_NAME = SEASON_NAME;
        this.SEASON_DESC = SEASON_DESC;
    }

    //3、在枚举类中创建对象，因为外界无法创建对象，又想让外界获取，所以改成静态的，可以直接通过类名访问
    public static final Season SPRING = new Season("春天", "春暖花开");
    public static final Season SUMMER = new Season("夏天", "烈日炎炎");
    public static final Season FALL = new Season("秋天", "秋高气爽");
    public static final Season WINTER = new Season("冬天", "白雪皑皑");

    //4、提供公共的方法获取属性
    public String getSEASON_NAME() {
        return SEASON_NAME;
    }

    public String getSEASON_DESC() {
        return SEASON_DESC;
    }

}



























